iT邦幫忙

2021 iThome 鐵人賽

DAY 14
0
Modern Web

使用SASS(SCSS)建立自己的CSS Library系列 第 14

[Day 14] Sass - Lists

  • 分享至 

  • xImage
  •  

在Day10的文章中有提到,Lists是指一個變數的值由多個值組成,這些值可以用底下的幾種方式隔開

//用逗號隔開
$list_name: values, separated, with, commas;

//用空格隔開
$list_name: values separated with spaces;

//在括號中用逗號隔開
$list_name: (values, in, parens, separated, with, commas);

//在括號中用空格隔開
$list_name: (values in parens separated with spaces);

//在方括號中用空格隔開
$list_name: [values in brackets separated with spaces];

無論想用哪種方式都可以,但整個Lists都要保持相同的方式就可以。

接下來介紹幾個常用的小工具:

nth()
可以把nth想成一個提取器,用來提取變數中的第n個值
舉個例子:
text-color我們共有三個變數#ffffff,orange,yellow
而我想使用orange這個顏色,就可以用nth提取第二個變數

$text-color: #ffffff,orange,yellow
.content
  color:nth($text-color,2)
            //引入變數,第二個

index()
剛剛的nth的使用方式是提取“第幾個變數”來知道“變數的值”,
而index則是提取“變數的值”來知道“第幾個變數”。
舉例來說:

$site: coffee,baseball,dvd
.content
  color:index($site,dvd)
            //引入變數,變數名稱

產生出來的code

.content{
  color: 3;
}

也就是提取“dvd”來知道“第三個”變數,
這樣的好處是可以與nth()一起搭配,
不管是換版型、或是要更改順序都能更加的方便快速!

再舉個nth()與index()搭配使用的例子:

$sites:coffee,cart,cloth,tea,child   //網站類型
$text-color:red,orange,yellow,green,blue //文字顏色
$bg:#fff,#000,#000,gray,#fff  //背景顏色
$style: index($sites,coffee)  //選擇coffee後 = $style:1
.box
  background: nth($bg,$style)
  color: nth($text-color,$style)

這樣子之後的樣式就都能直接取“第一個變數”,也就是“coffee”的相對應樣式了!

之後有時間再來聊聊更多相關的Lists用法,
希望大家能用得越來越上手喔!

參考資料:
https://www.koderhq.com/tutorial/sass/list/
https://ithelp.ithome.com.tw/articles/10135991


上一篇
[Day 13] Sass - Maps
下一篇
[Day 15] Sass - Loop
系列文
使用SASS(SCSS)建立自己的CSS Library21
圖片
  直播研討會
圖片
{{ item.channelVendor }} {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中

尚未有邦友留言

立即登入留言